package com.gopay.checkorder.service;

import java.util.List;

import com.gopay.common.constants.order.CheckOrderJoin;
import com.gopay.common.domain.cps.CpsOrderAdjustRecord;
import com.gopay.common.domain.cps.vo.CheckOrderResult;
import com.gopay.common.exception.GopayException;
import com.gopay.remote.bank.checkorder.CheckGopayOrderRemoteService;

/**
 * 国付宝对单接口
 * 
 * @CheckGopayOrderService.java
 * @author yaobo
 * @2013-11-6 下午02:25:13 www.gopay.com.cn Inc.All rights reserved.
 */
public interface CheckGopayOrderService extends CheckGopayOrderRemoteService {

    /**
     * 对单
     * 
     * @param record
     *            订单调整明细
     * @param join
     *            发起方
     * @throws GopayException
     * @return
     */
    public CheckOrderResult checkOrder(CpsOrderAdjustRecord record, CheckOrderJoin join) throws GopayException;

    /**
     * 获取待对单记录
     * 
     * @param adjustResult
     *            待对单状态
     * @param adjustCounts
     *            对单次数
     * @param pageIndex
     *            当前页数
     * @param pageSize
     *            每页记录数
     * @return
     */
    public List<CpsOrderAdjustRecord> getUnCheckList(String adjustResult, int adjustCounts, int pageIndex, int pageSize);

    /**
     * 获取待对单记录总数
     * 
     * @param adjustResult
     *            待对单状态
     * @param adjustCounts
     *            对单次数
     * @return
     */
    public int getUnCheckCount(String adjustResult, int adjustCounts);
}
